﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SlaveComponent;

namespace MasterVNC
{
    public partial class frmSlave : Form
    {
        private ControllerSlave _Controller;

        /// <summary>
        /// Crea una nuova frmSlave associandola al controller specificato.
        /// </summary>
        /// <param name="controller">il controller associato alla form</param>
        public frmSlave(ControllerSlave controller)
        {
            _Controller = controller;
            _Controller.Form = this;
            InitializeComponent();
        }

        // inizializza la connessione e nasconde la finestra
        private void ConnectButton_Click(object sender, EventArgs e)
        {
            // inizializza la connessione
            string ipAddress = ui_ipAddressBox.Text.ToString();
            _Controller.StartConnection(ipAddress);

            // nasconde la finestra e la inserisce nella system tray icon bar
            this.WindowState = FormWindowState.Minimized;
        }

        // nasconde la finestra quando viene minimizzata la finestra
        private void Form_Resize(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
                this.Hide();
        }

        // chiude la connessione e ripristina la form
        private void ui_CloseConnectionMenuItem_Click(object sender, EventArgs e)
        {
            _Controller.CloseConnection();
            ui_Label.Text = "";
            this.Show();
            this.WindowState = FormWindowState.Normal;
        }

        // chiude il programma
        private void ui_ExitMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public void ShowError(string message)
        {
            MessageBox.Show(
                    message,
                    "Errore",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
        }
    }
}
